/**
 * @file
 * @brief RTD：XWDS：设备
 * @author
 * + 隐星魂 (Roy Sun) <xwos@xwos.tech>
 * @copyright
 * + Copyright © 2015 xwos.tech, All Rights Reserved.
 * > Licensed under the Apache License, Version 2.0 (the "License");
 * > you may not use this file except in compliance with the License.
 * > You may obtain a copy of the License at
 * >
 * >         http://www.apache.org/licenses/LICENSE-2.0
 * >
 * > Unless required by applicable law or agreed to in writing, software
 * > distributed under the License is distributed on an "AS IS" BASIS,
 * > WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * > See the License for the specific language governing permissions and
 * > limitations under the License.
 */

#ifndef __RTD_xwds_device_h__
#define __RTD_xwds_device_h__

#include "board/std.h"
#include <xwcd/ds/xwds.h>
#include <xwcd/ds/soc/chip.h>
#include <xwcd/ds/uart/controller.h>
#include <xwcd/ds/i2c/master.h>
#include <xwcd/peripheral/i2c/eeprom/device.h>
#include <xwcd/peripheral/spi/flash/w25qxx/device.h>
#include <xwcd/ds/spi/master.h>

extern struct xwds rtdxwds;
void rtdxwds_init(void);
void rtdxwds_fini(void);

extern struct xwds_soc rtdxwds_soc;
void rtdxwds_soc_init(void);
void rtdxwds_soc_fini(void);

extern struct xwds_uartc rtdxwds_lpuart2;
void rtdxwds_uart_init(void);
void rtdxwds_uart_fini(void);

extern struct xwds_i2cm rtdxwds_lpi2cm;
extern struct xwds_i2cm rtdxwds_flexioi2cm;
void rtdxwds_i2cm_init(void);
void rtdxwds_i2cm_fini(void);
extern struct xwds_eeprom rtdxwds_eeprom_256k;
void rtdxwds_i2cp_init(void);
void rtdxwds_i2cp_fini(void);

extern struct xwds_spim rtdxwds_lpspi0m;
void rtdxwds_spim_init(void);
void rtdxwds_spim_fini(void);
extern struct xwds_w25qxx rtdxwds_w25q128jv;
void rtdxwds_spip_init(void);
void rtdxwds_spip_fini(void);

#endif /* RTD/xwds/device.h */
